# -*- coding: utf-8 -*-
import odoo
from odoo import http
from odoo.addons.web.controllers.main import Home, ensure_db, redirect_with_hash
from odoo.http import request


class DebugHome(Home):
    # http://localhost:8069/web?debug    web?debug=1      web?debug=true    web?debug=xxx
    @http.route('/web', type='http', auth="none")
    def web_client(self, s_action=None, **kw):
        ensure_db()
        # 判断是否有debug参数
        if kw.get('debug') and kw.get('debug') != "0":
            # 判断是否开启功能
            if request.env['ir.config_parameter'].sudo().get_param('debug_permission'):
                # 当不是管理员时
                if not request.env.user.browse(request.session.uid)._is_admin():
                        # 通过路由关闭debug
                        return redirect_with_hash('/web?debug=0')
        # 关闭debug后，通过此去除网站链接上的debug，因为不想让普通用户看见debug
        elif kw.get('debug') and kw.get('debug') == "0":
            return redirect_with_hash('/web')
        # 去除后调用super，所以说会重定向三次        
        return super().web_client(s_action=s_action, **kw)
